home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 43 / Amiga Format CD43 (1999)(Future Publishing)(GB)(Track 1 of 2)[!][issue 1999-09].iso / -serious- / wb / backclock / sources / utils.h < prev   
C/C++ Source or Header  |  1999-06-15  |  4KB  |  143 lines

  1. /* version 2.35
  2.  */
  3. #ifndef __UTILS_H
  4. #define __UTILS_H
  5.  
  6. #include <intuition/intuition.h>
  7. #include <devices/timer.h>
  8. #include <exec/ports.h>
  9. #include <dos/dos.h>
  10. #include <dos/dosextens.h>
  11. #include <libraries/notifyintuition.h>
  12. #include <workbench/startup.h>
  13.  
  14. #define ERRORNOMEM  1
  15. #define ERRORNOPORT 2
  16. #define ERRORUNKNOWNCMD 3
  17. #define OK         -1
  18.  
  19. #define TITLE      "BackClock V2.32b"
  20. #define MAXH       1000
  21.  
  22.  
  23. struct RGB {
  24.   UBYTE R,
  25.         G,
  26.         B,
  27.         pad ;
  28.   ULONG reg ;
  29. } ;
  30. #define NUM_COLORS 7
  31. #define COL_SEC    0
  32. #define COL_MIN    1
  33. #define COL_HEU    2
  34. #define COL_TIC    3
  35. #define COL_BAC    4
  36. #define COL_MPO    5
  37. #define COL_BLA    6
  38.  
  39.  
  40. #define IDCMP IDCMP_CHANGEWINDOW|IDCMP_NEWSIZE|IDCMP_MOUSEBUTTONS|IDCMP_ACTIVEWINDOW|IDCMP_INACTIVEWINDOW
  41. #define WFLG  WFLG_BACKDROP|WFLG_BORDERLESS
  42. #define TXT_SCRTITLE "BackClock"
  43.  
  44. struct specWin {
  45.   ULONG posX ;                  // X pos   \ 
  46.   ULONG posY ;                  // Y pos    \ window
  47.   ULONG width ;                 // width    /
  48.   ULONG height ;                // height  /
  49.   struct RGB cmap[NUM_COLORS] ; // colors
  50.   UWORD  fill ;                 // fill background ?
  51.   UWORD  filln ;                // fill arrows ?
  52.   UWORD  drawsec ;              // draw seconds arrow ?
  53.   UWORD  drawsha ;              // draw shadow ?
  54.   UWORD  drawmpo ;              // draw middle point ?
  55. } ;
  56.  
  57. struct prjSt {
  58.   struct Window * win ;                   // remplit par OpenWindow()
  59.   struct DateStamp * date ;               // date au format interne
  60.   char   datestr[10] ;                    // date au format ASCII
  61.   UBYTE  heu ;                                                                                          // heure
  62.   UBYTE  min ;                                                                                          // minute
  63.   UBYTE  sec ;                                                                                          // secondes
  64.   struct timerequest * treq ;                   // requete I/O timer.device
  65.   struct MsgPort     * trport ;                 // port rply timer
  66.   UBYTE  timerok ;                                                                           // ouverture timer ok
  67.   struct IntNotifyRequest * Notify ;            // requete notify
  68.   struct MsgPort          * notifyPort ;        // port reply notify
  69.   struct specWin backWin ;
  70.   ULONG  lastError ;
  71.   struct Screen * wb ;                          // lock to WB
  72.   struct RastPort * RP1 ;                       // tmp rp 1
  73.   struct RastPort * RP2 ;                       // tmp rp 2
  74.   struct TmpRas   * tmpras ;                    // tmpras vertice
  75.   struct AreaInfo * ai ;
  76. } ;
  77. struct backMsg {
  78.   struct Message execmsg ;
  79.   ULONG Class ; 
  80.   APTR  ptrPrj ; // pointeur sur prj à retourner lors d'un BC_GetPrj
  81.   LONG  error ;  // contient l'erreur de retour
  82. } ;
  83.  
  84. /* differentes classes
  85.  */
  86. #define BC_Quit          0x00000001 // recu demande d'arret externe
  87. #define BC_GetPrj        0x00000002 // recu l'envoi adresse prj
  88. #define BC_Refresh       0x00000003 // recu demande de rafraichissement
  89. #define BC_SaveConf      0x00000004 // reçu demande de sauvegarde prefs
  90. #define BC_UseConf       0x00000005 // reçu demande d'utiliser nouvelle prefs
  91. #define BC_SetWindow     0x00000006 // pos & taille window changées
  92. #define BC_RefreshColors 0x00000007 // colors changed
  93.  
  94. typedef prjSt idWin ;
  95.  
  96. // gadget systemes
  97. struct Gadget szgdg = {
  98.   NULL,
  99.   0,0, 100, 15,
  100.   GFLG_GADGHNONE,
  101.   GACT_RELVERIFY,
  102.   GTYP_WDRAGGING,
  103.   NULL,
  104.   NULL,
  105.   NULL,
  106.   NULL,
  107.   NULL,
  108.   10,
  109.   NULL
  110. } ;
  111. struct Gadget tagdg = {
  112.   NULL,
  113.   0,0, 0, 0,
  114.   GFLG_GADGHNONE,
  115.   GACT_RELVERIFY,
  116.   GTYP_SIZING,
  117.   NULL,
  118.   NULL,
  119.   NULL,
  120.   NULL,
  121.   NULL,
  122.   11,
  123.   NULL
  124. } ;
  125. ULONG top = NULL ;
  126.  
  127.  
  128. // proto  
  129. idWin * init(struct WBArg *) ;
  130. void close(idWin *) ;
  131. void getDate(idWin *) ;
  132. void writeDate(idWin *) ;
  133. extern void DateToByte(register __a0 char *, register __a1 idWin *) ;
  134. void initwin(idWin * prj) ;
  135. void processwin(idWin* prj) ;
  136. void effacer(idWin * prj) ;
  137. void retracer(idWin * prj) ;
  138. void runtimer(idWin * prj,long) ;
  139. void setArgs(idWin * prj, LONG * args) ;
  140. int exists() ;
  141. void ez_req(UBYTE *, UBYTE *, UBYTE *, APTR) ;
  142. #endif
  143.